package com.totcy.atom.presenter.contract;

import com.totcy.atom.bean.QuestionBean;
import com.totcy.baselibrary.base.mvpbase.BaseModel;
import com.totcy.baselibrary.base.mvpbase.BaseView;

import java.util.List;

/**
 * description :  Question Contract
 *
 * @author : Totcy
 * @date : 2018/11/8 19:35
 */

public interface QuestionContract {
    interface View extends BaseView {
        /**
         * @param questions
         */
        void onQuestionList(List<QuestionBean> questions);

        void onFail(int code, String message);
    }

    interface Presenter {
        /**
         * Presenter 调用 model 获取数据
         *
         * @param subjectName 科目
         * @param date 上下半年时间
         * @param type 1_选择题，2_案例，3_论文
         */
        void getQuestionList(String subjectName,String date, int type);
    }

    interface Model extends BaseModel {
        interface DataCallback {
            /**
             * 数据获取成功  返回实体
             *
             * @param questions
             */
            void onQuestionList(List<QuestionBean> questions);

            /**
             * 这里获取数据失败
             */
            void onDataNotAvailable(int code, String message);
        }

        /**
         * 网络获取数据
         */
        void getQuestionList(String subjectName,String date, int type, DataCallback callback);
    }
}
